^tools/ioemu-dir$
^tools/ocaml/.*/.*\.annot$
^tools/ocaml/.*/.*\.cmx?a$
+^tools/ocaml/.*/META$
^tools/ocaml/.*/\.ocamldep\.make$
^tools/ocaml/xenstored/oxenstored$
^xen/\.banner.*$
XEN_ROOT = ../..
include $(XEN_ROOT)/tools/Rules.mk
-SUBDIRS_LIBS = \
- libs/uuid libs/mmap \
- libs/log libs/xc libs/eventchn \
- libs/xb libs/xs libs/xl
-
SUBDIRS_PROGRAMS = xenstored
-SUBDIRS = $(SUBDIRS_LIBS) $(SUBDIRS_PROGRAMS)
+SUBDIRS = libs $(SUBDIRS_PROGRAMS)
.NOTPARALLEL:
# targets here must be run in order, otherwise we can try
# to build programs before the libraries are done
.PHONY: all
-all: build
-
-.PHONY: build
-build: SUBDIRS
-
-.PHONY: SUBDIRS SUBDIRS_PROGRAMS SUBDIRS_LIBS
-SUBDIRS SUBDIRS_PROGRAMS SUBDIRS_LIBS:
- @set -e; for d in $($@); do \
- echo " === building $$d"; \
- $(MAKE) --no-print-directory -C $$d; \
- done
-
-.PHONY: install install-libs install-program
-install: install-libs install-program
-
-install-program: SUBDIRS_PROGRAMS
- $(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
- $(INSTALL_PROG) xenstored/oxenstored $(DESTDIR)$(SBINDIR)
+all: subdirs-all
-install-libs: SUBDIRS_LIBS
+.PHONY: install
+install: subdirs-install
.PHONY: clean
-clean:
- @for dir in $(SUBDIRS); do \
- $(MAKE) --no-print-directory -C $$dir clean; \
- done
+clean: subdirs-clean
OCAMLOPTFLAGS = $(OCAMLOPTFLAG_G) -ccopt "$(LDFLAGS)" -dtypes $(OCAMLINCLUDE) -cc $(CC) -w F -warn-error F
OCAMLCFLAGS += -g $(OCAMLINCLUDE) -w F -warn-error F
-#LDFLAGS = -cclib -L./
-
-DESTDIR ?= /
VERSION := 4.1
-OCAMLABI = $(shell $(OCAMLC) -version)
-OCAMLLIBDIR = $(shell $(OCAMLC) -where)
-OCAMLDESTDIR ?= $(OCAMLLIBDIR)
+OCAMLDESTDIR ?= $(DESTDIR)$(shell ocamlfind printconf destdir)
o= >$@.new && mv -f $@.new $@
--- /dev/null
+XEN_ROOT = ../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+SUBDIRS= \
+ uuid mmap \
+ log xc eventchn \
+ xb xs xl
+
+.PHONY: all
+all: subdirs-all
+
+.PHONY: install
+install: subdirs-install
+
+.PHONY: clean
+clean: subdirs-clean
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf destdir) -ldconf ignore eventchn META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) eventchn
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore eventchn META $(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove eventchn
+ ocamlfind remove -destdir $(OCAMLDESTDIR) eventchn
include $(TOPLEVEL)/Makefile.rules
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf destdir) -ldconf ignore log META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) log
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore log META $(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove log
+ ocamlfind remove -destdir $(OCAMLDESTDIR) log
include $(TOPLEVEL)/Makefile.rules
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf destdir) -ldconf ignore mmap META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) mmap
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore mmap META $(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove mmap
+ ocamlfind remove -destdir $(OCAMLDESTDIR) mmap
include $(TOPLEVEL)/Makefile.rules
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf destdir) -ldconf ignore uuid META $(INTF) $(LIBS) *.a *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) uuid
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore uuid META $(INTF) $(LIBS) *.a *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove uuid
+ ocamlfind remove -destdir $(OCAMLDESTDIR) uuid
include $(TOPLEVEL)/Makefile.rules
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf destdir) -ldconf ignore xb META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xb
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore xb META $(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove xb
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xb
include $(TOPLEVEL)/Makefile.rules
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf destdir) -ldconf ignore xc META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xc
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore xc META $(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove xc
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xc
include $(TOPLEVEL)/Makefile.rules
--- /dev/null
+version = "@VERSION@"
+description = "Xen Toolstack Library"
+archive(byte) = "xl.cma"
+archive(native) = "xl.cmxa"
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf destdir) -ldconf ignore xl META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xl
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore xl META $(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove xl
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xl
include $(TOPLEVEL)/Makefile.rules
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf destdir) -ldconf ignore xs META $(INTF) xs.mli xst.mli xsraw.mli $(LIBS) *.a *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xs
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore xs META $(INTF) xs.mli xst.mli xsraw.mli $(LIBS) *.a *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove xs
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xs
include $(TOPLEVEL)/Makefile.rules
bins: $(PROGRAMS)
+install: all
+ $(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
+ $(INSTALL_PROG) oxenstored $(DESTDIR)$(SBINDIR)
+
include $(OCAML_TOPLEVEL)/Makefile.rules